Next: A Taxonomy for
Up: Hardware for Accelerating OpenGL
Previous: Hardware for Accelerating OpenGL
In simple terms, OpenGL describes a graphics pipeline for
performing graphics operations (OpenGL commands) to affect pixels in a
frame buffer. A graphics pipeline is a logical model for decomposing
graphics operations. In general, all graphics systems are organized
using some type of pipeline partitioning scheme. In a broader sense
(not limited to OpenGL), the general graphics pipeline can be
partitioned into five stages:
- Generation (G), creation, acquisition, or modification of
the information to be displayed and organizing this information
into application data structures.
- Traversal (T) of application data structures, passing on the
appropriate graphics data.
- Transformation (X) of the graphics data from object-space
coordinates into eye-space coordinates, performing requested
lighting operations, then clipping the
transformed data in clip-space, and projecting the resulting
coordinates into window-space.
- Rasterization (R) renders window-space primitives (like
points, lines, polygons) into a frame buffer. Iterating
per-vertex shading calculations, texture lookups and
calculations, and per-pixel operations like depth testing are
performed in this stage.
- Display (D) scans the resulting pixels in the frame buffer,
typically to a display monitor.
The stages make up a rendering pipeline because the outputs
from one stage are the inputs for the next stage. The letters G,
T, X, R, and D are used to abbreviate these
stages.
An OpenGL graphics pipeline is actually a subset of the general
graphics pipeline, specifying the last three stages. OpenGL leaves the generation
and traversal stages to the application program since these
stages are highly dependent on the particular data to be displayed and
how it is organized. Tasks that are varied and highly application
dependent are best left to the system's general purpose
processor.
Figure 1 shows
how the components of the OpenGL state machine map to the general
graphics pipeline. Higher-level libraries like Open Inventor
[11] and IRIS Performer [8] can assist
applications with the generation and traversal stages.
Next: A Taxonomy for
Up: Hardware for Accelerating OpenGL
Previous: Hardware for Accelerating OpenGL
mjk@sgi.com